package GUI.almacen;

import items.Pedido;
import items.PedidoContenedor;

import java.awt.BorderLayout;

import javax.swing.JDialog;
import javax.swing.JOptionPane;

public class Albaran extends JDialog{
 
	private static final long serialVersionUID = 1L;
	private Cabecera panelNorte;
	private AlbaranOeste panelOeste;
	private AlbaranSur panelSur;
	private AlbaranCentro panelCentro;
	private PedidoContenedor _pedidoContenedor;
	
	public Albaran(){
		
		_pedidoContenedor= new PedidoContenedor();
		//le damos formato a la ventana 
		this.getContentPane().setLayout(new BorderLayout());
		//instanciamos nuestro panel generico norte
		panelNorte= new Cabecera("Albaran");
		this.getContentPane().add(panelNorte,BorderLayout.NORTH);
		
		//panelOeste
		panelOeste= new AlbaranOeste(this);
		this.getContentPane().add(panelOeste,BorderLayout.WEST);
		
		//panelSur
		panelSur= new AlbaranSur(this);
		this.getContentPane().add(panelSur,BorderLayout.SOUTH);
	
		//panelCentro
		panelCentro= new AlbaranCentro(this);
		this.getContentPane().add(panelCentro,BorderLayout.CENTER);
		
		
		configurar_dialogo();
		
		
	}
	
	private void configurar_dialogo(){
		this.setTitle("G-Market Albaran");
		this.setResizable(false);
 		this.pack();
 		this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
 		this.setLocationRelativeTo(null);
 		this.setModal(true);
	}

	public void modificar_elemento_de_pedido(int id, String estado, String notas) {
		int indice=0;
		int tamanho=_pedidoContenedor.dame_toda_la_lista().size();
		Pedido elementoEncontrado=null;
		boolean encontrado=false;
		while(indice<tamanho&&!encontrado){
			elementoEncontrado=_pedidoContenedor.dame_toda_la_lista().get(indice);
			if(elementoEncontrado.igualAlElemento(id))
				encontrado=true;
			
			indice++;
		}
		if(encontrado){
			if(elementoEncontrado.getEstado().equalsIgnoreCase(Estado.CANCELADO.toString())){
				JOptionPane.showMessageDialog( this, "Pedido Cancelado", "Limpie Tabla", JOptionPane.WARNING_MESSAGE );
	            return;
			}else if(elementoEncontrado.getEstado().equalsIgnoreCase(Estado.RECIBIDO.toString())){
				JOptionPane.showMessageDialog( this, "Pedido Recibido", "Transfiera su informacion", JOptionPane.WARNING_MESSAGE );
	            return;
			}
			else{
			 elementoEncontrado.setEstado(estado);
			 elementoEncontrado.setNotas(notas);
			 panelCentro.actualizarPedidos();
			 }
			
		}		
	}
	
	public PedidoContenedor dameelcontenedor(){
		return this._pedidoContenedor;
	}
 
}
